import logging
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager
from info import create_app, db
from info.modules import models


# manage文件只做程序的启动操作。就是将迁移的代码，以及manager的代码放在这里。
# 路由以后的话还是要放在蓝图里面的啊
from info.modules.models import User

app = create_app('development')
# 创建数据库迁移
Migrate(app, db)
# 添加扩展命令行，
manager = Manager(app)
# 将数据库迁移的命令加到flask-script中
manager.add_command('db', MigrateCommand)


if __name__ == '__main__':
    # 这里添加测试log 的文件
    logging.debug("This is a debug log.")
    logging.info("This is a info log.")
    logging.warning("This is a warning log.")
    logging.error("This is a error log.")
    logging.critical("This is a critical log.")

    # 在这里添加创建管理员的选项
    @manager.option('-n', '-name', dest='name')
    @manager.option('-p', '-password', dest='password')
    def createsuperuser(name, password):
        # 校验参数
        if not all([name, password]):
            print('参数不全')

        # 如果参数到正确的,我们就创建用户,
        user = User()
        user.mobile = name
        user.nick_name = name
        user.password = password
        user.is_admin = True

        try:
            db.session.add(user)
            db.session.commit()
            print('创建ok')
        except Exception as e:
            # 用日志记录
            logging.error(e)
            print('创建失败')
    manager.run()


